package Vista;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;


import Controlador.Sistema;
import Persistencia.AdministradorPersistenciaServico;


public class ViewAltaServicio extends javax.swing.JFrame {
	private JLabel jLNombrePlan;
	private JTextField jTUnidadesLibres;
	private JTextField jTNombrePaquete;
	private JLabel jLNumeoPlan;
	private JLabel jLabel2;
	private JComboBox jComboBServicio;
	private JComboBox jComboBServicioDatos;
	private JComboBox jComboBServicioSms;
	private JComboBox jComboBServicioVoz;
	private JTextField jTCostoUnidadExedente;
	private JLabel jLabel4;
	private JTextField jTCosto;
	private JCheckBox jCheckDatos;
	private JCheckBox jCheckSms;
	private JCheckBox jCheckVoz;
	private JButton jBCancelar;
	private JButton jBguardar;
	private JTextField jTDescuentoPaq;
	private JLabel jLabel3;
	private JLabel jLabel1;
	public static ViewAltaServicio instancia;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				ViewAltaServicio inst = new ViewAltaServicio();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	private ViewAltaServicio() {
		super();
		initGUI();
	}
	
	public static ViewAltaServicio getInstancia() 
	{
		if (instancia== null)
			instancia = new ViewAltaServicio();
		return instancia;
	}
		
	
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				jLNombrePlan = new JLabel();
				getContentPane().add(jLNombrePlan);
				jLNombrePlan.setText("Unidades Libres");
				jLNombrePlan.setBounds(18, 81, 151, 14);
			}
			{
				jTUnidadesLibres = new JTextField();
				getContentPane().add(jTUnidadesLibres);
				jTUnidadesLibres.setBounds(187, 78, 70, 21);
			}
			{
				jLNumeoPlan = new JLabel();
				getContentPane().add(jLNumeoPlan);
				jLNumeoPlan.setText("Servicio");
				jLNumeoPlan.setBounds(18, 27, 151, 14);
			}
			{
				jTNombrePaquete = new JTextField();
				getContentPane().add(jTNombrePaquete);
				jTNombrePaquete.setBounds(187, 148, 252, 21);
				jTNombrePaquete.setEnabled(false);
			}
			{
				jLabel1 = new JLabel();
				getContentPane().add(jLabel1);
				jLabel1.setText("Costo por Unidad exedente");
				jLabel1.setBounds(18, 114, 157, 14);
			}
			{
				jLabel2 = new JLabel();
				getContentPane().add(jLabel2);
				jLabel2.setText("Paquete");
				jLabel2.setBounds(18, 151, 151, 14);
			}
			{
				ComboBoxModel jComboBox1Model = 
					new DefaultComboBoxModel(
							new String[] { "", "VOZ","SMS", "DATOS", "PAQUETE"});
				jComboBServicio = new JComboBox();
				getContentPane().add(jComboBServicio);
				jComboBServicio.setModel(jComboBox1Model);
				jComboBServicio.setBounds(187, 18, 351, 21);
				jComboBServicio.setOpaque(false);
				jComboBServicio.setVisible(true);
				jComboBServicio.addItemListener(new ItemListener() {
					public void itemStateChanged(ItemEvent evt) {
						System.out.println("jComboBServicio.itemStateChanged, event="+evt);
						String seleccion = (String) jComboBServicio.getSelectedItem();
						if (seleccion == "PAQUETE")
						{
							jTCosto.setEnabled(false);
							jTUnidadesLibres.setEnabled(false);
							jTCostoUnidadExedente.setEnabled(false);
							jTNombrePaquete.setEnabled(true);
							jTDescuentoPaq.setEnabled(true);
							jCheckVoz.setEnabled(true);
							jCheckSms.setEnabled(true);
							jCheckDatos.setEnabled(true);			
														
						}
						else
						{
							jTCosto.setEnabled(true);
							jTUnidadesLibres.setEnabled(true);
							jTCostoUnidadExedente.setEnabled(true);
							jTNombrePaquete.setEnabled(false);
							jTDescuentoPaq.setEnabled(false);
							jCheckVoz.setEnabled(false);
							jCheckSms.setEnabled(false);
							jCheckDatos.setEnabled(false);
							jComboBServicioDatos.setEnabled(false);
							jComboBServicioSms.setEnabled(false);
							jComboBServicioVoz.setEnabled(false);
						}
					}
				});

			}
			{
				jLabel3 = new JLabel();
				getContentPane().add(jLabel3);
				jLabel3.setText("Descuento Paquete");
				jLabel3.setBounds(18, 177, 151, 14);
			}
			{
				jTDescuentoPaq = new JTextField();
				getContentPane().add(jTDescuentoPaq);
				jTDescuentoPaq.setBounds(187, 174, 70, 21);
				jTDescuentoPaq.setEnabled(false);
			}
			{
				jBguardar = new JButton();
				getContentPane().add(jBguardar);
				jBguardar.setText("GUARDAR");
				jBguardar.setBounds(54, 304, 108, 21);
				jBguardar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jBguardar.actionPerformed, event="+evt);
				String seleccionG = (String) jComboBServicio.getSelectedItem();
						if (seleccionG == "SMS")
						{
						String nombreS = seleccionG + " " + jTUnidadesLibres.getText() + " unidades libres $" + jTCostoUnidadExedente.getText() + " por mensaje";	
						Sistema.getInstancia().altaServicioSms(nombreS, "SMS", "cantidad", Float.parseFloat(jTCostoUnidadExedente.getText()), Integer.parseInt(jTUnidadesLibres.getText()),  Float.parseFloat(jTCosto.getText()) );
						cargaComboSms();
						limpiarPantalla();
						}
						else if (seleccionG == "VOZ")
						{
							String nombreS = seleccionG + " " + jTUnidadesLibres.getText() + " unidades libres $" + jTCostoUnidadExedente.getText() + " por mensaje";								
							Sistema.getInstancia().altaServicioVoz(nombreS,"VOZ", "KB", Float.parseFloat(jTCostoUnidadExedente.getText()), Integer.parseInt(jTUnidadesLibres.getText()), Float.parseFloat(jTCosto.getText()));
							cargaComboVoz();
							limpiarPantalla();
						}
						else if (seleccionG == "DATOS")
						{
							String nombreS = seleccionG + " " + jTUnidadesLibres.getText() + " unidades libres $" + jTCostoUnidadExedente.getText() + " por mensaje";								
							Sistema.getInstancia().altaServicioDatos(nombreS, "DATOS","KB", Float.parseFloat(jTCostoUnidadExedente.getText()), Integer.parseInt(jTUnidadesLibres.getText()), Float.parseFloat(jTCosto.getText()));
							cargaComboDatos();
							limpiarPantalla();
						}
						else if (seleccionG == "PAQUETE")
						{
							Vector<String> serviciosPaquetes = new Vector<String>(); 
							if(jCheckVoz.isSelected())
					        {
								serviciosPaquetes.add((String) jComboBServicioVoz.getSelectedItem());
					        }
							if(jCheckDatos.isSelected())
					        {
								serviciosPaquetes.add((String) jComboBServicioDatos.getSelectedItem());
					        }
							if(jCheckSms.isSelected())
					        {
								serviciosPaquetes.add((String) jComboBServicioSms.getSelectedItem());
					        }
								
							Sistema.getInstancia().altaPaquete(jTNombrePaquete.getText(), "PAQUETE" , "" , Float.parseFloat(jTDescuentoPaq.getText()), serviciosPaquetes );
							/*Sistema.getInstancia().altaPaquete(jTNombrePaquete.getText(), "PAQUETE" , "P" , 1, 1, serviciosPaquetes );*/
						}
						
					}
				});
			}
			{
				jBCancelar = new JButton();
				getContentPane().add(jBCancelar);
				jBCancelar.setText("CANCELAR");
				jBCancelar.setBounds(406, 304, 95, 21);
			}
			{
				jCheckVoz = new JCheckBox();
				getContentPane().add(jCheckVoz);
				jCheckVoz.setText("Voz");
				jCheckVoz.setBounds(18, 209, 97, 18);
				jCheckVoz.setEnabled(false);
				jCheckVoz.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jCheckVoz.actionPerformed, event="+evt);					
						if(jCheckVoz.isSelected())
				        {
							jComboBServicioVoz.setEnabled(true);
				        }
				        else jComboBServicioVoz.setEnabled(false);
					}
				});
			}
			{
				jCheckSms = new JCheckBox();
				getContentPane().add(jCheckSms);
				jCheckSms.setText("SMS");
				jCheckSms.setBounds(18, 232, 97, 18);
				jCheckSms.setEnabled(false);
				jCheckSms.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jCheckSms.actionPerformed, event="+evt);
						if(jCheckSms.isSelected())
				        {
							jComboBServicioSms.setEnabled(true);
				        }
				        else jComboBServicioSms.setEnabled(false);
					}
				});
			}
			{
				jCheckDatos = new JCheckBox();
				getContentPane().add(jCheckDatos);
				jCheckDatos.setText("Datos");
				jCheckDatos.setBounds(18, 259, 97, 18);
				jCheckDatos.setEnabled(false);
				jCheckDatos.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jCheckDatos.actionPerformed, event="+evt);
						if(jCheckDatos.isSelected())
				        {
							jComboBServicioDatos.setEnabled(true);
				        }
				        else jComboBServicioDatos.setEnabled(false);
					}
				});
			}
			{
				jTCostoUnidadExedente = new JTextField();
				getContentPane().add(jTCostoUnidadExedente);
				jTCostoUnidadExedente.setBounds(187, 111, 70, 21);
			}
			{
				ComboBoxModel jComboBox1Model = 
					new DefaultComboBoxModel(
							new String[] { "" });
				jComboBServicioVoz = new JComboBox();
				getContentPane().add(jComboBServicioVoz);
				jComboBServicioVoz.setModel(jComboBox1Model);
				jComboBServicioVoz.setEnabled(false);
				jComboBServicioVoz.setOpaque(false);
				jComboBServicioVoz.setBounds(120, 198, 418, 21);
			    cargaComboVoz();
			}
			{
				ComboBoxModel jComboBox2Model = 
					new DefaultComboBoxModel(
							new String[] { "" });
				jComboBServicioSms = new JComboBox();
				getContentPane().add(jComboBServicioSms);
				jComboBServicioSms.setModel(jComboBox2Model);
				jComboBServicioSms.setEnabled(false);
				jComboBServicioSms.setOpaque(false);
				jComboBServicioSms.setBounds(120, 225, 418, 21);
				cargaComboSms();
			}
			{
				ComboBoxModel jComboBox3Model = 
					new DefaultComboBoxModel(
							new String[] { "" });
				jComboBServicioDatos = new JComboBox();
				getContentPane().add(jComboBServicioDatos);
				getContentPane().add(getJLabel4());
				getContentPane().add(getJTCosto());
				jComboBServicioDatos.setModel(jComboBox3Model);
				jComboBServicioDatos.setEnabled(false);
				jComboBServicioDatos.setOpaque(false);
				jComboBServicioDatos.setBounds(120, 258, 418, 21);
				cargaComboDatos();
			}
			pack();
			this.setSize(575, 391);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void cargaComboSms ()
	{
		jComboBServicioSms.removeAllItems();
		
		//logica para BBDD//
		//Vector<String> a = AdministradorPersistenciaServico.getInstancia().cargarComboSrv("SMS"); 
			
		Vector<String> a = Sistema.getInstancia().cargaComboSms("SMS");
		for (int i = 0; i < a.size(); i++) 
			{
			 String c = a.elementAt(i);
			 jComboBServicioSms.addItem(c); 								
		    }	
	}
	
	public void cargaComboDatos ()
	{
jComboBServicioDatos.removeAllItems();
		
		//logica para BBDD//
		//Vector<String> a = AdministradorPersistenciaServico.getInstancia().cargarComboSrv("DATOS"); 
			
		Vector<String> a = Sistema.getInstancia().cargaComboDatos("DATOS");
		for (int i = 0; i < a.size(); i++) 
			{
			 String c = a.elementAt(i);
			 jComboBServicioDatos.addItem(c); 								
		    }		
	}
	
	public void cargaComboVoz ()
	{
		jComboBServicioVoz.removeAllItems();
		
		//logica para BBDD//
		//Vector<String> a = AdministradorPersistenciaServico.getInstancia().cargarComboSrv("VOZ"); 
			
		Vector<String> a = Sistema.getInstancia().cargaComboVoz("VOZ");
		for (int i = 0; i < a.size(); i++) 
			{
			 String c = a.elementAt(i);
			 jComboBServicioVoz.addItem(c); 								
		    }	
	}

	
	
	private JLabel getJLabel4() {
		if(jLabel4 == null) {
			jLabel4 = new JLabel();
			jLabel4.setText("Costo");
			jLabel4.setBounds(18, 53, 151, 14);
		}
		return jLabel4;
	}
	
	private JTextField getJTCosto() {
		if(jTCosto == null) {
			jTCosto = new JTextField();
			jTCosto.setBounds(187, 50, 70, 21);
		}
		return jTCosto;
	}
	
	private void limpiarPantalla()
	{
		jTCosto.setText("");
		jTUnidadesLibres.setText("");
		jTCostoUnidadExedente.setText("");
	}

}
